C-3PR is a static analysis bot. It is part of a Software Engineering research project on UnB.
The work developed here has been published in the 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER).
To automatically generate code fixes and transformations, C-3PR first listens for commit notifications from the source code platform. Second, it spawns an execution environment for the project and invokes the static analysis tools in the changed files only. If issues/transformations are found/generated, the bot creates PRs containing the fixes. These PRs also include descriptions of what issue has been addressed and why.
C-3PR is a distributed system. Several microservices communicate via an event-driven interface. Other than the dasboard, which has a dedicated snapshot store, all events in the system are saved as-is, and all the applications (e.g. C-3PR Brain) work in an event-sourced style.


